//////////////////////////////////////////////////////////////////////////

#ifndef _TIMER_H_
#define _TIMER_H_

//////////////////////////////////////////////////////////////////////////

#include <ctime>

//////////////////////////////////////////////////////////////////////////

/** Game timer
*
*  @author   Roman Pasechnik
*  @since    Jun 04th, 2009
*  @updated  Jun 05th, 2009
*/
class Timer
{
//////////////////////////////////////////////////////////////////////////

public:

//////////////////////////////////////////////////////////////////////////


    /** Constructor */
    Timer();


    /** Destructor */
    virtual ~Timer();


//////////////////////////////////////////////////////////////////////////


    /** Start timer */
    void Start();


    /** Pause timer */
    void Pause();


    /** Reset timer */
    void Reset();


    /** Get time from start in milliseconds */
    int Milliseconds() const;


    /** Delay */
    static void Delay( int _milliseconds );


//////////////////////////////////////////////////////////////////////////

private:

//////////////////////////////////////////////////////////////////////////


    /** Start time */
    clock_t m_Begin;


//////////////////////////////////////////////////////////////////////////
};


//////////////////////////////////////////////////////////////////////////

#endif

//////////////////////////////////////////////////////////////////////////

